/*
 *
 *    Copyright (c) 2022 Project CHIP Authors
 *
 *    Licensed under the Apache License, Version 2.0 (the "License");
 *    you may not use this file except in compliance with the License.
 *    You may obtain a copy of the License at
 *
 *        http://www.apache.org/licenses/LICENSE-2.0
 *
 *    Unless required by applicable law or agreed to in writing, software
 *    distributed under the License is distributed on an "AS IS" BASIS,
 *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *    See the License for the specific language governing permissions and
 *    limitations under the License.
 */

// THIS FILE IS GENERATED BY ZAP

#import "../MCCommand.h"
#import "MCCommandPayloads.h"
#import <Foundation/Foundation.h>

#ifndef MCCommandObjects_h
#define MCCommandObjects_h

@interface MCNullObjectType : NSObject
@end

// OnOff cluster:

@interface MCOnOffClusterOffCommand : MCCommand <MCOnOffClusterOffParams *, MCNullObjectType *>
@end

@interface MCOnOffClusterOnCommand : MCCommand <MCOnOffClusterOnParams *, MCNullObjectType *>
@end

@interface MCOnOffClusterToggleCommand : MCCommand <MCOnOffClusterToggleParams *, MCNullObjectType *>
@end

@interface MCOnOffClusterOffWithEffectCommand : MCCommand <MCOnOffClusterOffWithEffectParams *, MCNullObjectType *>
@end

@interface MCOnOffClusterOnWithRecallGlobalSceneCommand : MCCommand <MCOnOffClusterOnWithRecallGlobalSceneParams *, MCNullObjectType *>
@end

@interface MCOnOffClusterOnWithTimedOffCommand : MCCommand <MCOnOffClusterOnWithTimedOffParams *, MCNullObjectType *>
@end

// LevelControl cluster:

@interface MCLevelControlClusterMoveToLevelCommand : MCCommand <MCLevelControlClusterMoveToLevelParams *, MCNullObjectType *>
@end

@interface MCLevelControlClusterMoveCommand : MCCommand <MCLevelControlClusterMoveParams *, MCNullObjectType *>
@end

@interface MCLevelControlClusterStepCommand : MCCommand <MCLevelControlClusterStepParams *, MCNullObjectType *>
@end

@interface MCLevelControlClusterStopCommand : MCCommand <MCLevelControlClusterStopParams *, MCNullObjectType *>
@end

@interface MCLevelControlClusterMoveToLevelWithOnOffCommand : MCCommand <MCLevelControlClusterMoveToLevelWithOnOffParams *, MCNullObjectType *>
@end

@interface MCLevelControlClusterMoveWithOnOffCommand : MCCommand <MCLevelControlClusterMoveWithOnOffParams *, MCNullObjectType *>
@end

@interface MCLevelControlClusterStepWithOnOffCommand : MCCommand <MCLevelControlClusterStepWithOnOffParams *, MCNullObjectType *>
@end

@interface MCLevelControlClusterStopWithOnOffCommand : MCCommand <MCLevelControlClusterStopWithOnOffParams *, MCNullObjectType *>
@end

@interface MCLevelControlClusterMoveToClosestFrequencyCommand : MCCommand <MCLevelControlClusterMoveToClosestFrequencyParams *, MCNullObjectType *>
@end

// WakeOnLan cluster:

// TargetNavigator cluster:

@interface MCTargetNavigatorClusterNavigateTargetCommand : MCCommand <MCTargetNavigatorClusterNavigateTargetParams *, MCTargetNavigatorClusterNavigateTargetResponseParams *>
@end

// MediaPlayback cluster:

@interface MCMediaPlaybackClusterPlayCommand : MCCommand <MCMediaPlaybackClusterPlayParams *, MCMediaPlaybackClusterPlaybackResponseParams *>
@end

@interface MCMediaPlaybackClusterPauseCommand : MCCommand <MCMediaPlaybackClusterPauseParams *, MCMediaPlaybackClusterPlaybackResponseParams *>
@end

@interface MCMediaPlaybackClusterStopCommand : MCCommand <MCMediaPlaybackClusterStopParams *, MCMediaPlaybackClusterPlaybackResponseParams *>
@end

@interface MCMediaPlaybackClusterStartOverCommand : MCCommand <MCMediaPlaybackClusterStartOverParams *, MCMediaPlaybackClusterPlaybackResponseParams *>
@end

@interface MCMediaPlaybackClusterPreviousCommand : MCCommand <MCMediaPlaybackClusterPreviousParams *, MCMediaPlaybackClusterPlaybackResponseParams *>
@end

@interface MCMediaPlaybackClusterNextCommand : MCCommand <MCMediaPlaybackClusterNextParams *, MCMediaPlaybackClusterPlaybackResponseParams *>
@end

@interface MCMediaPlaybackClusterRewindCommand : MCCommand <MCMediaPlaybackClusterRewindParams *, MCMediaPlaybackClusterPlaybackResponseParams *>
@end

@interface MCMediaPlaybackClusterFastForwardCommand : MCCommand <MCMediaPlaybackClusterFastForwardParams *, MCMediaPlaybackClusterPlaybackResponseParams *>
@end

@interface MCMediaPlaybackClusterSkipForwardCommand : MCCommand <MCMediaPlaybackClusterSkipForwardParams *, MCMediaPlaybackClusterPlaybackResponseParams *>
@end

@interface MCMediaPlaybackClusterSkipBackwardCommand : MCCommand <MCMediaPlaybackClusterSkipBackwardParams *, MCMediaPlaybackClusterPlaybackResponseParams *>
@end

@interface MCMediaPlaybackClusterSeekCommand : MCCommand <MCMediaPlaybackClusterSeekParams *, MCMediaPlaybackClusterPlaybackResponseParams *>
@end

@interface MCMediaPlaybackClusterActivateAudioTrackCommand : MCCommand <MCMediaPlaybackClusterActivateAudioTrackParams *, MCNullObjectType *>
@end

@interface MCMediaPlaybackClusterActivateTextTrackCommand : MCCommand <MCMediaPlaybackClusterActivateTextTrackParams *, MCNullObjectType *>
@end

@interface MCMediaPlaybackClusterDeactivateTextTrackCommand : MCCommand <MCMediaPlaybackClusterDeactivateTextTrackParams *, MCNullObjectType *>
@end

// KeypadInput cluster:

@interface MCKeypadInputClusterSendKeyCommand : MCCommand <MCKeypadInputClusterSendKeyParams *, MCKeypadInputClusterSendKeyResponseParams *>
@end

// ContentLauncher cluster:

@interface MCContentLauncherClusterLaunchContentCommand : MCCommand <MCContentLauncherClusterLaunchContentParams *, MCContentLauncherClusterLauncherResponseParams *>
@end

@interface MCContentLauncherClusterLaunchURLCommand : MCCommand <MCContentLauncherClusterLaunchURLParams *, MCContentLauncherClusterLauncherResponseParams *>
@end

// ApplicationLauncher cluster:

@interface MCApplicationLauncherClusterLaunchAppCommand : MCCommand <MCApplicationLauncherClusterLaunchAppParams *, MCApplicationLauncherClusterLauncherResponseParams *>
@end

@interface MCApplicationLauncherClusterStopAppCommand : MCCommand <MCApplicationLauncherClusterStopAppParams *, MCApplicationLauncherClusterLauncherResponseParams *>
@end

@interface MCApplicationLauncherClusterHideAppCommand : MCCommand <MCApplicationLauncherClusterHideAppParams *, MCApplicationLauncherClusterLauncherResponseParams *>
@end

// ApplicationBasic cluster:

#endif /* MCCommandObjects_h */
